﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using IToursDataService.Models;

namespace IToursDataService
{
    // 注意: 使用“重构”菜单上的“重命名”命令，可以同时更改代码和配置文件中的接口名“IExpensesCtrl”。
    [ServiceContract]
    public interface IExpensesCtrl
    {
        #region 获取相关费用信息

         /// <summary>
        /// 获取费用状态，看是否存在‘计划’的对账单费用项数据
        /// </summary>
        /// <param name="tourGroupId">团号</param>
        /// <returns>true存在，false不存在</returns>
        [OperationContract]
        bool GetAllExpenseStatusForBill(string tourGroupId, string loginProviderID);
        /// <summary>
        /// 获取费用ID，用于对账单
        /// </summary>
        /// <param name="tourgroupId"></param>
        /// <param name="loginProviderID"></param>
        /// <returns></returns>
        [OperationContract]
        string GetExpenseIDForBill(string tourgroupId, string loginProviderID);
        /// <summary>
        /// 获取费用状态，用于对账单
        /// </summary>
        /// <param name="tourgroupId"></param>
        /// <param name="loginProviderID"></param>
        /// <returns></returns>
        [OperationContract]
        string GetExpenseStatusForBill(string tourgroupId, string loginProviderID);
        #endregion

        #region 费用增、删、改
        /// <summary>
        /// 更新费用的‘审核状态’信息，‘计划、待审核、审核、导游报销、终结’
        /// </summary>
        /// <param name="expenseId">费用标识</param>
        /// <param name="status">被更新成为状态</param>
        /// <returns></returns>
        [OperationContract]
        int UpdateExpenseStatusData(string expenseId, ExpenseStatusEnum status);

        #endregion
    }
}
